package com.sz.mes.entity;

import java.util.Date;
import java.lang.Double;
import java.math.BigDecimal;
import javax.validation.constraints.NotNull;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.hibernate.validator.constraints.Length;
import java.util.List;
import java.util.Map;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import com.sz.mes.entity.BaseCustomEntity;
import com.diboot.core.binding.query.BindQuery;
import com.diboot.core.binding.query.Comparison;
import com.diboot.core.util.D;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

/**
 * 生产任务 Entity定义
 *
 * @author hem
 * @version 1.0
 * @date 2023-06-09
 * Copyright © szhs
 */
@Getter
@Setter
@Accessors(chain = true)
@TableName("product_task")
public class ProductTask extends BaseCustomEntity {

    private static final long serialVersionUID = -4450897458093667103L;

    /**
     * 计划开工日期
     */
    @TableField()
    private Date startTime;

    /**
     * 计划完工日期
     */
    @TableField()
    private Date endTime;

    /**
     * 任务编号
     */
    @TableField()
    private String taskNum;


    /**
     * 单据编号
     */
    @TableField()
    private String receiptNum;

    /**
     * 计划号
     */
    @Length(max = 100, message = "计划号长度应小于100")
    @TableField()
    private String planNum;

    /**
     * 料品料号
     */
    @Length(max = 100, message = "料品料号长度应小于100")
    @TableField()
    private String productNum;

    /**
     * 料品名称
     */
    @Length(max = 255, message = "料品名称长度应小于255")
    @TableField()
    private String productName;

    /**
     * 料品规格
     */
    @Length(max = 100, message = "料品规格长度应小于100")
    @TableField()
    private String productSpecification;

    /**
     * 生产数量
     */
    @TableField()
    private Integer quantity;

    /**
     * 备料料号
     */
    @Length(max = 100, message = "备料料号长度应小于100")
    @TableField()
    private String stockNum;

    /**
     * 生产任务erp创建时间
     */
    @Length(max = 100, message = "生产任务erp创建时间长度应小于100")
    @TableField()
    private String productTaskCreateTime;

    /**
     * 备料名称
     */
    @Length(max = 100, message = "备料名称长度应小于100")
    @TableField()
    private String stockName;

    /**
     * 生产单位
     */
    @Length(max = 100, message = "生产单位长度应小于100")
    @TableField()
    private String productUnit;

    /**
     * 备料发料日期
     */
    @Length(max = 100, message = "备料发料日期长度应小于100")
    @TableField()
    private String stockProvideTime;

    /**
     * 备料规格
     */
    @Length(max = 255, message = "备料规格长度应小于255")
    @TableField()
    private String stockSpecification;

    /**
     * 生产部门
     */
    @Length(max = 100, message = "生产部门长度应小于100")
    @TableField()
    private String productSection;

    /**
     * 订单备料.料品.库存单位
     */
    @Length(max = 100, message = "订单备料.料品.库存单位长度应小于100")
    @TableField()
    private String unit;

    /**
     * 图纸编号
     */
    @TableField()
    private String picNum;

    /**
     * excel内容
     */
    @TableField()
    private String excelData;

    @TableField(exist = false)
    private List<Technique> techniqueList;

    @TableField(exist = false)
    private Long pageNumber;

    @TableField(exist = false)
    private Long pageSize;

    @TableField(exist = false)
    private List<String> fileUuidList;

    /**
     * 备料已发放数量
     */
    @Length(max = 100, message = "备料已发放数量长度应小于100")
    @TableField()
    private String stockProvideQuantity;

    /**
     * 入库数量
     */
    @Length(max = 100, message = "入库数量长度应小于100")
    @TableField()
    private String instockQuantity;

    /**
     * 备料用量
     */
    @Length(max = 100, message = "备料用量长度应小于100")
    @TableField()
    private String stockDosage;
}
